#ifndef COMMON_H
#define COMMON_H

typedef enum {
	ERROR, // 0
	UNKNOWN, //1
	LEXER_DONE,	// 2
	CREATE, //3
	TABLE, //4
	INT, //5
	DEFAULT,
	PRIMARY,
	KEY,
	INSERT,
	VALUES,	//10
	DELETE,
	FROM,
	WHERE,
	SELECT,
	ID, //15
	INTO,
	NUM,
	AND,
	OR,
	NOT, //20
	LT,
	LE,
	GT,
	GE,
	EQ, //25
	ASSIGN,
	NEQ,
	PLUS,
	MINUS,
	MUL, //30
	DIV,
	SEMI,
	BEGIN,
	END,
	COMMA, //35
	DECL_LIST,
	DECL,
	COLUMN_LIST,
	DEFAULT_SPEC,
	EPSION, //40
	BOOL,
	SELECT_LIST,
	CONJUNCT_LIST,
	WHERE_CLAUSE,
	VALUE_LIST
} TokenType;

typedef struct {
	TokenType type;
	char *name;
} Token;

typedef enum {
	INERROR, START, DONE, INID, INNUM, INLE, //LT & LE
	INGE,	// GT & GE
	INEQ,	// EQ & ASSIGN
	INAND,
	INOR
} ScannerState;

#endif
